package com.ilearn.iodata.iolingo.service.metadata.core.edm.mapper.api;

/**
 * Created by lyndon on 2018/5/29.
 */
public interface Attribute<X, Y> {
    String getName();

    Attribute.PersistentAttributeType getPersistentAttributeType();

    ManagedType<X> getDeclaringType();

    Class<Y> getJavaType();

    Member getJavaMember();

    boolean isAssociation();

    boolean isCollection();

    public static enum PersistentAttributeType {
        MANY_TO_ONE,
        ONE_TO_ONE,
        BASIC,
        EMBEDDED,
        MANY_TO_MANY,
        ONE_TO_MANY,
        ELEMENT_COLLECTION;

        private PersistentAttributeType() {
        }
    }
}